/* 
  学习目标：setState的第二种写法
  目标：连续调用不覆盖前面的setState

  语法：setState( (旧的状态) => 新的状态 )
  作用：
      同样是合并执行，避免多次修改DOM
  注意：💥💥这种写法setState还是异步的
*/

import React from 'react';

export default class App extends React.Component {
  state = {
    count: 0,
  };

  handleClick = () => {
    // 合并：不覆盖，会等到上次的结果返回后再执行
    this.setState((preState) => {
      return {
        count: preState.count + 1,
      };
    });
    this.setState((preState) => {
      return {
        count: preState.count + 2,
      };
    });
    this.setState((preState) => {
      return {
        count: preState.count + 3,
      };
    });

    console.log('this.state.count  ----->  ', this.state.count);
  };

  render() {
    return (
      <div>
        <h1>数量： {this.state.count}</h1>
        <button onClick={this.handleClick}>点我修改数量</button>
      </div>
    );
  }
}

// 问题： 连续调用setState，会产生什么
